Next: Generalized Variables, Previous: Variable Aliases, Up: Variables [Contents][Index]
Ordinary Lisp variables can be assigned any value that is a
valid Lisp object. However, certain Lisp variables are not
defined in Lisp, but in C. Most of these variables are defined in
the C code using DEFVAR_LISP. Like variables defined
in Lisp, these can take on any value. However, some variables are
defined using DEFVAR_INT or
DEFVAR_BOOL. See Writing
Emacs Primitives, in particular the description of functions
of the type syms_of_filename, for a brief
discussion of the C implementation.
Variables of type DEFVAR_BOOL can only take on
the values nil or t. Attempting to
assign them any other value will set them to t:
(let ((display-hourglass 5))
display-hourglass)
⇒ t
This variable holds a list of all variables of type
DEFVAR_BOOL.
Variables of type DEFVAR_INT can take on only
integer values. Attempting to assign them any other value will
result in an error:
(setq undo-limit 1000.0) error→ Wrong type argument: integerp, 1000.0